package com.cy.pj.sys.service;

import com.cy.pj.sys.pojo.SysUser;
import org.springframework.context.annotation.Configuration;

import java.util.List;

/**
 * 定义用户业务接口,负责用户业务逻辑规范定义
 */
@Configuration
public interface SysUserService {
    /**
     * 基于条件查询用户信息以及用户对应的部门id,部门名称
     * @param entity
     * @return
     */
    List<SysUser> findUsers(SysUser entity);

    /**
     * 基于id查询用户信息,用户对应的部门信息,用户对应的角色信息,当我们执行更新操作时,会
     * 基于id将其纪录查询出来,然后更新到页面上
     * @param id
     * @return
     */
    SysUser findById(Integer id);

    /**
     * 添加新的用户信息以及用户和角色关系数据
     * 在添加用户时不仅仅要保存用户信息,还要保存用户和角色关系数据
     * @param entity
     * @return
     */
    int saveUser(SysUser entity);

    /**
     * 更新用户信息以及用户和角色关系数据
     * 在更新时不仅要更新用户自身信息,还要更新用户和角色关系表
     * @param entity
     * @return
     */
    int updateUser(SysUser entity);

    /**
     * 基于用户id修改用户状态(禁用,启用)
     * @param id
     * @param valid
     * @return 更新行数
     */
    int validById(Integer id,Integer valid);


    /**
     * 修改密码
     *
     */

    int updatePassword(String sourcePassword,String newPassword,String confirmPassword);
}
